문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 버퍼 오버플로 (문단 편집) == 대처법 == 요즘은 컴파일러 레벨에서 이 오버플로에 대한 처리를 다 해준다. [[Visual Studio]] 같은 경우에는 컴파일러가 버퍼 생성시 앞뒤로 2바이트짜리 영역을 만들어 [[디버깅]]시 이 위치의 값이 바뀌면 버퍼 오버플로가 발생한 것으로 판단하고 [[예외 처리|예외]]를 때려 버리며, 아예 버퍼 오버플로가 발생하기 쉬운 함수(strcpy 등)는 이를 방어 가능한 함수(strcpy_s 등)으로 교체하라고 경고[* VS 2013부터 경고(warning)에서 에러(error)로 변경되어서 컴파일이 안 된다. 설정을 통해 다시 경고 수준으로 바꾸거나, {{{#define _CRT_SECURE_NO_WARNINGS}}} 구문을 소소코드의 맨 위에 넣어주면 된다.]를 해준다. 물론 이렇게 다 해준다고 마냥 안심하고 있긴 어려운 것이, 버퍼 오버플로는 [[프로그램]]이 Input을 받는 모든 곳에서 발생할 수 있으므로 [[프로그래머]]도 값을 입력받을 때 갖가지 예외 처리를 통해[* 가령 main 함수의 argv 문자열 값으로 넘어오는 값이 버퍼를 초과할 수 있으므로 int형 변수를 먼저 선언하고 다른 변수를 선언해 argv-int-다른 변수 순으로 쌓이는 스택의 특성을 이용하여 int형 변수의 값이 바뀌면 이를 버퍼 오버플로라 판단해 차단해버리는 스택 가드 기법이 있다.] 이 값이 과연 올바른 값인지 꼼꼼히 따져봐야 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기